<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // Set()
    // ES6 提供了新的数据结构 Set。它类似于数组，但是成员的值都是唯一的，没有重复的值。

    // 如何创建set数据?
    // 构造函数创建  new Set()

    var s = new Set();
    // console.log(s);

    // 如何实现set数据 成员(元素)增  删  查 ?
    // 使用set相关的属性和方法
    // 属性
    // size     返回Set数据的成员总数。

    // 方法
    // add(value)：   向set数据中, 添加某个值(不能重复)，返回 Set 结构本身。
    // delete(value)：删除某个值，返回一个布尔值，表示删除是否成功。
    // has(value)：   返回一个布尔值，表示该值是否为Set的成员。 (Set结构是否存在某个元素)
    // clear()：       清除所有成员，没有返回值。

    // console.log(s.size);

    // add()
    // 值类型
    // s.add(1);
    // s.add(2);
    // s.add(3);
    // s.add(4);

    // 引用类型   只有引用同一片内存空间 => 才是重复的
    // var arr = [];
    // var brr = arr;
    // s.add(arr);  //同一片内存空间不能重复
    // s.add(brr);

    // s.add({});  //内存空间不同 可以重复放
    // s.add({});


    // delete()   单删(一个一个删除 存储的成员/元素/数据)
    // console.log(s.delete(1)); //true
    // console.log(s.delete(1)); //false
    // console.log(s.delete(2)); //true
    // console.log(s.delete(3)); //true
    // console.log(s.delete(4)); //true

    // clear()   清空(全删 一次性删除所有)
    // s.clear();

    // has()  
    console.log(s.has(1));;
    console.log(s.has(2));;
    console.log(s.has(3));;
    console.log(s.has(4));;


    console.log(s);
    console.log(s.size);

</script>

</html>